package com.yhsimon.utils;

import com.yhsimon.pojo.Commodity;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;


@Component
public class HtmlParseUtil {

    public static void main(String[] args) throws IOException {
//        new HtmlParseUtil().parseDangDang("东野圭吾").forEach(System.out::println);
        new HtmlParseUtil().parseDangDang("余华").forEach(System.out::println);
//        String str="3.53折";
//        System.out.println(str.substring(0,str.length()-1));
    }

    public HtmlParseUtil(){

    }

    public  List<Commodity> parseDangDang(String keywords) throws IOException {
        //获取请求 https://search.jd.com/Search?keyword=java
        //前提是需要联网;  不能获取到ajax数据，需要模拟浏览器才能获取
        String url="http://search.dangdang.com/?key="+keywords+"&act=input";

        //解析网页 (Jsoup返回Document就是浏览器Document对象)
        Document document = Jsoup.parse(new URL(url), 30000);
        //所有在js可以使用的方法都能在此处使用
        Element element = document.getElementById("search_nature_rg");
//        System.out.println(element.html());
        Elements elements = element.getElementsByTag("li");
        List<Commodity> commodities = new ArrayList<>();
        commodities.forEach(System.out::println);
        for (Element el : elements) {
            //很多图片特别多的网站，所有的图片都是延迟加载的
            //source-data-lazy-img  （京东案例）
            String img = el.getElementsByTag("img").eq(0).attr("data-original");
            String title=el.getElementsByTag("a").eq(0).attr("title");
            String price=el.getElementsByClass("search_pre_price").eq(0).text();
            Double realPrice=Double.parseDouble(price.substring(1));

            //折扣处理需完善  尤其是字符串的处理

          /*  String discount=el.getElementsByClass("search_discount").eq(1).text();
            //System.out.println("discount："+discount);
            //折扣
            Double dis=Double.parseDouble(discount.substring(1,discount.length()-2));
            //真实价格
            realPrice=dis*realPrice/10;
*/

//            System.out.println("================================");
//            System.out.println(title);
//            System.out.println(img);
//            System.out.println(realPrice);
            commodities.add(new Commodity(title,img,realPrice));
        }
        return commodities;
    }


}
